handle은 재귀적으로 동작을 수행하도록 구현되어 있다.
(위의 handle은 어떠한 작업도 하지 않기 때문에 virtual로 정의해 둠, 단순 사슬 연결용)
위 CreatureModifier는 연결 리스트에 항목을 추가하는 기능밖에는 특별한 기능이 없지만,
이 클래스를 상속해 실질적인 작업을 시작하면 구현의 의미가 명확해진다.
위의 클래스들이 담고 있는 creature 변수는 실제 객체가 아닌 포인터, 참조 등임
next->handle()을 통해서 자식 클래스에서 재정의(override)된 handle() 메서드를 수행
중간 클래스의 handle()에서 부모 클래스의 handle()을 막아서, next 클래스들에 정의된 handle() 수행을
제어할 수 있다.